package cn.stylefeng.guns.modular.hx.storage.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.lang.Nullable;

import java.util.Date;
import java.util.List;

/**
 * 出库订单响应数据传输对象。
 *
 * @author : like
 * @date : 2024/8/18 9:40
 * @Version: 1.0
 */
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ManagePageContentDTO {

    /**
     * 后加=====
     */
    @JsonProperty("item_count")
    private int itemCount;

    /**
     * 调整原因。
     */
    @Nullable
    @JsonProperty("adjust_reason_name")
    private String adjustReasonName;

    /**
     * 审核人。
     */
    @JsonProperty("audit_by")
    private String auditBy;

    /**
     * 审核时间。
     */
    @JsonProperty("audit_time")
    private String auditTime;

    /**
     * 收货客户代码。
     */
    @JsonProperty("client_code")
    private String clientCode;

    /**
     * 收货客户id。
     */
    @JsonProperty("client_id")
    private Long clientId;

    /**
     * 收货客户名称。
     */
    @JsonProperty("client_name")
    private String clientName;

    /**
     * 公司id。
     */
    @JsonProperty("company_id")
    private Long companyId;

    /**
     * 制单人。
     */
    @JsonProperty("create_by")
    private String createBy;

    /**
     * 制单时间。
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("create_time")
    private Date createTime;

    /**
     * 配送日。
     */
    @JsonProperty("delivery_date")
    private String deliveryDate;

    /**
     * 明细。
     */
    @JsonProperty("details")
    private List<ManagePageContentDetailDTO> details;

    /**
     * 单据号。
     */
    @JsonProperty("fid")
    private String fid;

    /**
     * 备注。
     */
    @JsonProperty("memo")
    private String memo;

    /**
     * 类型。
     */
    @JsonProperty("order_type")
    private String orderType;

    /**
     * 出库单据类型。
     */
    @JsonProperty("order_type_name")
    private String orderTypeName;

    /**
     * 关联出库申请单单号。
     */
    @JsonProperty("out_application_order_fid")
    private String outApplicationOrderFid;

    /**
     * 打印人。
     */
    @JsonProperty("print_by")
    private String printBy;

    /**
     * 数量。
     */
    @JsonProperty("quantity")
    private Double quantity;

    /**
     * 单据状态。
     */
    @JsonProperty("state")
    private String state;

    /**
     * 状态名称。
     */
    @JsonProperty("state_name")
    private String stateName;

    /**
     * 门店id。
     */
    @JsonProperty("store_id")
    private Long storeId;

    /**
     * 门店名称。
     */
    @JsonProperty("store_name")
    private String storeName;

    /**
     * 发货仓库id。
     */
    @JsonProperty("storehouse_id")
    private Long storehouseId;

    /**
     * 发货仓库名称。
     */
    @JsonProperty("storehouse_name")
    private String storehouseName;

    /**
     * 系统自动生成的备注。
     */
    @JsonProperty("system_memo")
    private String systemMemo;

    /**
     * 最后更新人。
     */
    @JsonProperty("update_by")
    private String updateBy;

    /**
     * 最后更新时间。
     */
    @JsonProperty("update_time")
    private String updateTime;

    /**
     * 上传状态。
     */
    @JsonProperty("upload_state")
    private String uploadState;
}